package Model;
import java.util.ArrayList;

// nave aliada
public class NaveAliada extends NaveModelInterface{
	
	int puntos;
	int vidas;
	boolean escudo = false;
	private final int PUNTOS = 250; // Puntos derrivar nave
	private final int CRAFT_SIZE = 20; // tam nave
	private ArrayList<Misil> misiles; 
	// strategy
	private Comportamiento comportamiento;

	
	public void setComportamiento(Comportamiento c){
		
		this.comportamiento = c;
	}
	public Comportamiento getComportamiento() {
		return comportamiento;
	}
	public NaveAliada( int posx, int posy) {
		super("n1.1.png", posx, posy);
		vidas = 3;
		puntos = 0;
		misiles = new ArrayList<Misil>();
		comportamiento = new ComportamientoVulnerable(this);
	}
	
	// comportamiento nave
	public void addPuntos(){
		puntos += PUNTOS;
		
		if((puntos%500) == 0 && puntos > 0){
			
			
			comportamiento = new ComportamientoInvulnerable(this);
			
		}
		if((puntos%1000) == 0 && puntos > 0){
			
			vidas++;
		}	
		
	}
	public void setEscudoOn(){
		this.escudo = true;
	}
	public void setEscudoOff(){
		this.escudo = false;
	}
	public int getVidas(){
		return vidas;
	}
	public void quitarVida(){
		
		if(vidas > 0)
			vidas --;
	}
	public int getPuntos(){
		return puntos;
	}
	public String getEscudoAsString(){
		return escudo == true ? "true" : "false";
	}
	public void fire(){
		 misiles.add(new Misil(getX() + CRAFT_SIZE, getY() + CRAFT_SIZE/2));
		
	}
	public ArrayList<Misil> getMissiles() {
        return misiles;
    }
    
	@Override
	protected void move() {

		this.setX(this.getX()+ this.getDx());
		this.setY(this.getY()+ this.getDy());
		
	}
	public void posicionar(){
		this.move();
	}
	

}
